import torch
from torch import nn

"""
LSTM 门控逻辑单元的参数
input_size: vocab_size(词元的维度大小，也可以说是词的分类大小)
hidden_size: RNN隐藏状态的维度大小
num_layers=1 : RNN隐藏状态层的深度
nonlinearity='tanh' : RNN隐藏状态的激活函数（'relu'）
bias=True : 是否启用偏置
batch_first=False # inputs输入是否以batch_size为第一维度 (batch_size,seq_len,vocab_size)
dropout=0.0 : 暂退法，防止过拟合
bidirectional=False ：是否启用双向RNN结构（切记双向RNN与单向RNN解决问题是不同的）
device=None : 模型运行的设备
dtype=None : 模型输出值的类型
"""

rnn = nn.LSTM(10, 20, 2)
input = torch.randn(5, 3, 10)
h0 = torch.randn(2, 3, 20)
c0 = torch.randn(2, 3, 20)
output, (hn, cn) = rnn(input, (h0, c0))
